import { reqOrderList } from '@/api/order'

Page({
  // 页面的初始数据
  data: {
    orderList: [],
    pages: 1,
    size: 10,
    total: 0,
    isShowEmptyStatus: false,
    isFinish: false, //全部加载完成
    isLoadingFinish: false // 当前页是否加载完成（节流）
  },

  async getOrderList() {
    const { pages, size, orderList } = this.data
    // 在请求前后设置节流状态
    this.setData({ isLoadingFinish: true })
    const res = await reqOrderList(pages, size)
    if (res.code === 200) {
      if (res.data.total === 0) {
        this.setData({
          isShowEmptyStatus: true,
          orderList: []
        })
        return
      }
      this.setData({
        orderList: [...orderList, ...res.data.records],
        total: res.data.total,
        isLoadingFinish: false
      })
    }
  },
  // 生命周期函数--监听页面加载
  onLoad: function (options) {
    this.getOrderList()
  },

  // 页面相关事件处理函数--监听用户下拉动作
  onPullDownRefresh: function () {
    // 下拉需要重置数据
    this.setData({
      pages: 1,
      orderList: [],
      isFinish: false
    })
    this.getOrderList()
    wx.stopPullDownRefresh()
  },

  // 页面上拉触底事件的处理函数
  onReachBottom: function () {
    // isLoadingFinish为true,上一个请求没完成
    const { pages, total, orderList, isLoadingFinish } = this.data
    if (total === 0 || isLoadingFinish) return
    if (orderList.length < total) {
      this.setData({
        pages: pages + 1
      })
      this.getOrderList()
    } else {
      this.setData({
        isFinish: true
      })
    }
  }
})
